001    /*
002     * Copyright 2005 Stephen J. McConnell.
003     *
004     * Licensed  under the  Apache License,  Version 2.0  (the "License");
005     * you may not use  this file  except in  compliance with the License.
006     * You may obtain a copy of the License at
007     *
008     *   http://www.apache.org/licenses/LICENSE-2.0
009     *
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed  under the  License is distributed on an "AS IS" BASIS,
012     * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
013     * implied.
014     *
015     * See the License for the specific language governing permissions and
016     * limitations under the License.
017     */
018    
019    package net.dpml.transit.model;
020    
021    import java.util.EventObject;
022    
023    /**
024     * An abstract event related to the addition and removal of hosts
025     * to and from the cache model.
026     *
027     * @author <a href="http://www.dpml.net">Digital Product Meta Library</a>
028     * @version 1.0.1
029     */
030    public abstract class CacheEvent extends EventObject
031    {
032       /**
033        * Serial version identifier.
034        */
035        static final long serialVersionUID = 1L;
036    
037        private final HostModel m_host;
038    
039       /**
040        * Construction of a new cache change event.
041        * @param source the cache model initiating the event
042        * @param host the host model added or removed from the cache
043        */
044        public CacheEvent( CacheModel source, HostModel host )
045        {
046            super( source );
047            m_host = host;
048        }
049        
050       /**
051        * Return the cache model that initiating the event.
052        * @return the cache model
053        */
054        public CacheModel getCacheModel()
055        {
056            return (CacheModel) getSource();
057        }
058    
059       /**
060        * Return the host model that was added or removed.
061        * @return the host model
062        */
063        public HostModel getHostModel()
064        {
065            return m_host;
066        }
067    }